<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use DB;

class GoodsController extends Controller
{	
	// 商品添加页面
    public function add()
    {   
        // 查询商品分类表
        $res = DB::table('type') -> get();

    	return view('admin.goods.add',['title'=>'商品添加','res'=>$res]);
    }

    // 商品列表页面
    public function index()
    {	
    	// 查询数据库
    	$row = DB::table('goods') -> get();
    	
        // 查询商品分类表
        $res = DB::table('type') -> get();

    	return view('admin.goods.index',['title'=>'商品列表','row'=>$row]);
    }

    // 商品编辑页面
    public function edit(request $request)
    {	
    	// 接收id
    	$id = $request -> input('id');

    	// 查询数据库
    	$row = DB::table('goods') -> where('gid','=',$id) -> get();
    	
    	return view('admin.goods.update',['title'=>'商品更新','row'=>$row]);
    }

    // 商品版本添加页面
    public function edition(request $request)
    {	
    	// 接收id
    	$id = $request -> input('id');

    	return view('admin.goods.EditionInsert',['title'=>'商品版本添加','id'=>$id]);
    }

    // 商品版本列表页面
    public function Editionindex(request $request)
    {   
        // 接收ID
        $id = $request -> input('id');

        // 数据库查询
        $res = DB::table('goods') -> where('gid','=',$id) -> get();
        $row = DB::table('goods_details') -> where('gid','=',$id) -> get();

        return view('admin.goods.EditionIndex',['title'=>'商品版本列表','res'=>$res,'row'=>$row]);
    }

    // 商品版本原有的基础上在增加的页面
    public function VersionInsert(request $request)
    {   
        // 接收ID
        $id = $request -> input('id');

        // 查询数据库
        $res = DB::table('goods_details') -> where('gid','=',$id) -> get();

        return view('admin.goods.VersionInsert',['title'=>'商品版本增加','res'=>$res]);
    }

    // 商品分类修改页面
    public function typeAdd(request $request)
    {   
        // 接收ID
        $id = $request -> input('id');

        // 查询数据库
        $row = DB::table('type') -> get();
       
        return  view('admin.goods.AddType',['title'=>'商品分类添加','row'=>$row,'id'=>$id]);
    }

    // 商品分类修改
    public function TypeInsert(request $request)
    {
        // 接收ID
        $id = $request -> input('id');

        $type_name = $request -> input('type_name');

        $row = DB::table('type') -> where('type_name','=',$type_name) -> get();

        $type_id = array( 'type_id' => $row[0] -> type_id);
        // dd($id);

        $res = DB::table('goods') -> where('gid','=',$id) -> update($type_id);

         if($res)
        {
            return redirect('/admin/goods/index');
        } else {
            return back();
        }

    }

    // 商品版本原有的基础上在增加
    public function VersionAdd(request $request)
    {
        // 接收color和edition,input标签数据
        $id = $request -> input('id');
        $color = $request -> input('color');
        $value = $request -> input('edition');
        
        // 拼接数组
        $data = array(
                'value' => $value,
                'color' => $color,
                );

        $res = DB::table('goods_details') -> where('gid','=',$id) -> update($data);

        if($res)
        {
            return redirect('/admin/goods/EditionIndex?id='.$id);
        } else {
            return back();
        }
    }

    // 商品版本删除
    public function VersionDelete(request $request)
    {
        // 接收ID
        $id = $request -> input('id');

        // 数据库删除执行
        $res = DB::table('goods_details') -> where('gid','=',$id) -> delete();

        if($res)
        {
            return redirect('/admin/goods/EditionIndex?id='.$id);
        } else {
            return back();
        }
    }

    // 商品版本添加
    public function editionAdd(request $request)
    {
    	// 接收color和edition,input标签数据
    	$id = $request -> input('id');
    	$color = $request -> input('color');
    	$value = $request -> input('edition');
    	
        // 拼接数组
        $data = array(
                'gid' => $id,
                'value' => $value,
                'color' => $color,
            );

        // 执行数据库
        $res = DB::table('goods_details') -> insert($data);

        if($res)
        {
            return redirect('/admin/goods/EditionIndex'.$id);
        } else {
            return back();
        }
    }

    // 商品详情更新
    public function update(request $request)
    {
    	// 接收除了token以外的数据
    	$data = $request -> except('_token','id');

    	// 接收id
    	$id = $request -> input('id');
        
    	// 处理头像
    	if($request -> hasFile('pic'))
    	{
    		if($request -> file('pic') -> isValid())
    		{
    			$suffix = $request -> file('pic') -> getClientOriginalExtension();
    			$fileName = time().mt_rand(10000,99999).'.'.$suffix;
    			// 移动文件
    			$move = $request -> file('pic') -> move('./uploads/yhtx',$fileName);
    			if($move)
    			{
    				$data['pic'] = $fileName;
    			}
    			else
    			{
    				$data['pic'] = 'default.jpg';
    			}
    		}else
    		{
    			$data['pic'] = 'default.jpg';
    		}
    	}
    	else
    	{
    		$data['pic'] = 'default.jpg';
    	}

    	// 执行商品数据更新
    	$res = DB::table('goods') -> where('gid','=',$id) -> update($data);

    	if($res)
    	{
    		return redirect('/admin/goods/index');
    	} else {
    		return back();
    	}
    }

    // 商品添加
    public function insert(request $request)
    {	
    	// 接收数据
    	$name = $request -> input('name');
        $type_name = $request -> input('type_name');
        $details = $request -> input('details');
        $price = $request -> input('price');
       
    	// 处理头像
    	if($request -> hasFile('pic'))
    	{
    		if($request -> file('pic') -> isValid())
    		{
    			$suffix = $request -> file('pic') -> getClientOriginalExtension();
    			$fileName = time().mt_rand(10000,99999).'.'.$suffix;
    			// 移动文件
    			$move = $request -> file('pic') -> move('./uploads/yhtx',$fileName);
    			if($move)
    			{
    				$pic = $fileName;
    			}
    			else
    			{
    				$pic = 'default.jpg';
    			}
    		}else
    		{
    			$pic = 'default.jpg';
    		}
    	}
    	else
    	{
    		$pic = 'default.jpg';
    	}

        // 查询数据库
        $row = DB::table('type') -> where('type_name','=',$type_name) ->get();

        // 取出商品分类id
        $type_id = $row[0] -> type_id;
        // dd($type_id);
        
        // 拼接数组 
        $data = array(
                'name'    => $name,
                'type_id' => $type_id,
                'details' => $details,
                'price'   => $price,
                'pic'     => $pic
            );
		// dd($data);
		// 执行商品添加操作
		$res = DB::table('goods') -> insert($data);
    	
    	if($res)
    	{
    		return redirect('/admin/goods/index');
    	} else {
    		return back();
    	}
    }

    // 商品的删除
    public function delete(request $request)
    {
    	// 接收id
    	$id = $request -> input('id');
    	
    	// 执行商品添加操作
		$res = DB::table('goods') -> where('gid','=',$id) -> delete();
    	
    	if($res)
    	{
    		return redirect('/admin/goods/index');
    	} else {
    		return back();
    	}
    }
}
